package main    //声明文件所在的包，每个go文件都必须有归属的包

import "fmt"   //引入程序中需要的包，为了使用包下的函数，例如：Println

type Animal struct{
	Age int
	Weight int
}

func (a *Animal)Shout(){
	fmt.Println("大声喊叫")
}
func (a *Animal)ShowInfo(){
	fmt.Printf("动物的年龄是：%v, 体重是：%v",a.Age,a.Weight)
}
type Cat struct{
	Age int
	//嵌套匿名结构体，将Animal里的字段和方法都达到复用
	Animal
}

func (c *Cat)ShowInfo(){
	fmt.Printf("小猫的年龄是：%v,体重是：%v\n",c.Age,c.Weight)
}

func main() {
	c := Cat{}
		c.Age = 3
		c.Weight = 10 
		c.ShowInfo()
		c.Animal.ShowInfo()
}
